﻿
namespace Lib.Configuration.Entitys;
/// <summary>
/// 图片配置类（水印）
/// </summary>
public partial class Picture {
    /// <summary>
    /// 构造函数
    /// </summary>
    public Picture() { }
    /// <summary>
    /// 初始化默认值
    /// </summary>
    public void Initialize() {
        //
        if (string.IsNullOrEmpty(WMarkType)) {
            WMarkType = "Image";
        }
        if (string.IsNullOrEmpty(Position)) {
            Position = "TOP_LEFT";
        }
        if (!Y.HasValue) {
            Y = 10;
        }
        if (!X.HasValue) {
            X = 10;
        }
        if (!Opacity.HasValue || Opacity < 0 || Opacity > 100) {
            Opacity = 50;
        }
        if (!Quality.HasValue || Quality < 0 || Quality > 100) {
            Quality = 100;
        }
        if (!Angle.HasValue || Angle < 0 || Angle > 360) {
            Angle = 0;
        }
        if (!Percent.HasValue) {
            Percent = 20;
        }
        Text ??= Text.Create;
        Text.Initialize();
        Image = Configs.Parse(Image);
    }

    /// <summary>
    /// 水印类型（0.Close 关闭水印功能，1.Image 图片水印，2.Text 文字水印）
    /// </summary>
    public string WMarkType { get; set; }
    /// <summary>
    /// 水印位置（）
    /// </summary>
    public string Position { get; set; }
    /// <summary>
    /// 水印位置 X 轴偏移位
    /// </summary>
    public int? X { get; set; }
    /// <summary>
    /// 水印位置 Y 轴偏移位
    /// </summary>
    public int? Y { get; set; }
    /// <summary>
    /// 水印透明度（0 - 100）0.完全透明，100.不透明
    /// </summary>
    public int? Opacity { get; set; }
    /// <summary>
    /// 水印旋转角度（0 - 360）
    /// </summary>
    public int? Angle { get; set; }
    /// <summary>
    /// 水印显示比例（0 - 100）
    /// </summary>
    public int? Percent { get; set; }
    /// <summary>
    /// 生成图片质量（0 - 100）
    /// </summary>
    public int? Quality { get; set; }
    /// <summary>
    /// 图片水印文件路径（物理路径）
    /// </summary>
    public string Image { get; set; }
    /// <summary>
    /// 文字水印
    /// </summary>
    public Text Text { get; set; }

}

